Trò chơi 2D Cow Boy Runner

52.950 lượt xem;
1 using System.Collections;
2 using
System.Collections.Generic;
3 using
UnityEngine;
4
5 public
class GenerateGrounds : MonoBehaviour {
6
7     
public GameObject groundGenerator;
8     
public Transform generatePoint;
9     
public float distance;
10     
//private float width;
11
12     
public float distanceBetweenMin;
13     
public float distanceBetweenMax;
14
15     
private int groundSelector;
16     
private float[] groundWidth;
17     
public ObjectPooler[] theObjectPools;
18
19     
public Transform maxHeightPoint;
20     
private float minHeight;
21     
private float maxHeight;
22     
public float maxHeightChange;
23     
private float heightChange;
24
25     
private CoinGeneratorScript coinGenerator;
26     
public float randomCoins;
27
28     
private CrateGeneratorScript cratesGenerator;
29     
public float randomCrates;
30
31
32     
void Start () {
33         
34         groundWidth =
new float[theObjectPools.Length];
35
36         
for(int i = 0; i < theObjectPools.Length; i++) {
37             groundWidth [i] = theObjectPools [i].pooledObject.GetComponent<BoxCollider2D> ().size.x;
38         }
39
40         minHeight = transform.position.y;
41         maxHeight = maxHeightPoint.position.y;
42
43         coinGenerator = FindObjectOfType<CoinGeneratorScript> ();
44         cratesGenerator = FindObjectOfType<CrateGeneratorScript> ();
45     }
46
47
48     
void Update () {
49         
if(transform.position.x < generatePoint.position.x) {
50
51             distance = Random.Range (distanceBetweenMin, distanceBetweenMax);
52
53             groundSelector = Random.Range (
0, theObjectPools.Length);
54
55             heightChange = transform.position.y + Random.Range (maxHeightChange, -maxHeightChange);
56
57             
if (heightChange > maxHeight) {
58                 heightChange = maxHeight;
59             }
else if (heightChange < minHeight) {
60                 heightChange = minHeight;
61             }
62
63             transform.position =
new Vector3 (transform.position.x + (groundWidth[groundSelector] / 2) + distance, heightChange, transform.position.z);
64
65             GameObject newPlatform = theObjectPools[groundSelector].GetPooledObject ();
66             newPlatform.transform.position = transform.position;
67             newPlatform.transform.rotation = transform.rotation;
68             newPlatform.SetActive (
true);
69
70             
if(Random.Range(0f, 100f) < randomCoins) {
71                 coinGenerator.spawnCoins (
new Vector3 (transform.position.x, transform.position.y + 3f, transform.position.z));
72             }
73
74             
if(Random.Range(0f, 100f) < randomCrates) {
75                 cratesGenerator.spawnCrates (
new Vector3 (transform.position.x, transform.position.y + 1.3f, transform.position.z));
76             }
77
78             transform.position =
new Vector3 (transform.position.x + (groundWidth[groundSelector] / 2) + distance, transform.position.y, transform.position.z);
79
80         }
81     }
82 }


private float width;



Gõ tìm kiếm nhanh...